{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "cell_id": "00000-eb52ae5e-a1f6-4ad2-99c6-d6eec6b07cfe"
   },
   "source": [
    "# 3D dose map analysis\n",
    "\n",
    "Use the output of the simulation named 'ex2_dose_actor_3D.py'."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00001-6d57c54d-e209-4062-a0b1-7e0992fe9b6f",
    "execution_millis": 1,
    "execution_start": 1605009963671,
    "output_cleared": false,
    "source_hash": "4786f891",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:27.583390Z",
     "start_time": "2024-09-17T11:59:27.040801Z"
    }
   },
   "source": [
    "# Tell Jupyter to plot figure right in the page\n",
    "#%matplotlib notebook\n",
    "\n",
    "from exercices_helpers import *"
   ],
   "outputs": [],
   "execution_count": 1
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "source": [
    "The file \"exercices_helpers\" contains some functions used to display images and perform some image processes."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00002-fee9b460-446b-4c59-ad8e-e624b5c380a8",
    "execution_millis": 1,
    "execution_start": 1605010049758,
    "output_cleared": false,
    "source_hash": "702ff6d0",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:27.606433Z",
     "start_time": "2024-09-17T11:59:27.603006Z"
    }
   },
   "source": [
    "# The following command display the current working directory (where jupyter has been launched)\n",
    "cwd = os.getcwd()\n",
    "print('The Current Working Directory (CWD) is: \\n', cwd)\n",
    "folder = Path()\n",
    "if not folder.is_dir():\n",
    "    print('ERROR: {} is not a folder.'.format(folder))"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Current Working Directory (CWD) is: \n",
      " /Users/dsarrut/src/gate/dqprm/2025/gate-exercices/2_dosimetry\n"
     ]
    }
   ],
   "execution_count": 2
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00003-218500bc-1c37-4681-8413-9feff467bf2b",
    "execution_millis": 0,
    "execution_start": 1605010082790,
    "output_cleared": false,
    "source_hash": "77b2d837",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:27.700567Z",
     "start_time": "2024-09-17T11:59:27.692310Z"
    }
   },
   "source": [
    "# Read an image (with itk)\n",
    "filename = os.path.join(folder,'./data/patient-2mm.mhd')\n",
    "img_ct = sitk.ReadImage(filename)\n",
    "print('CT image size: ', img_ct.GetSize())\n",
    "print('CT image spacing: ', img_ct.GetSpacing())\n",
    "print('CT image origin: ', img_ct.GetOrigin())"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CT image size:  (126, 126, 111)\n",
      "CT image spacing:  (2.0, 2.0, 2.0)\n",
      "CT image origin:  (0.0, 0.0, 0.0)\n"
     ]
    }
   ],
   "execution_count": 3
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "source": [
    "In order to be able to run the interactive plot, you must install ipympl as indicated here: https://github.com/matplotlib/ipympl\n",
    "This is activated by the previous `%matplotlib widget` line."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:27.910100Z",
     "start_time": "2024-09-17T11:59:27.781782Z"
    }
   },
   "source": [
    "from exercices_helpers import *\n",
    "show_itk_3d_image(img_ct, rot90=(0,1,2), figsize=(10, 5))"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x500 with 4 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "interactive(children=(IntSlider(value=63, description='sx', max=125), IntSlider(value=63, description='sy', ma…"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "1408acdae1474156ae0b0731f72a0f0c"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 4
  },
  {
   "cell_type": "code",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:27.953970Z",
     "start_time": "2024-09-17T11:59:27.947026Z"
    }
   },
   "source": [
    "# read the dose image\n",
    "filename = os.path.join(folder, './output/ex2_3d_patient_dose.mhd')\n",
    "img_dose = sitk.ReadImage(filename)\n",
    "print('Dose itk image size: ', img_dose.GetSize())\n",
    "print('Dose itk image spacing: ', img_dose.GetSpacing())\n",
    "print('Dose itk image origin: ', img_dose.GetOrigin())\n",
    "\n",
    "# convert to np array for easier manipulation\n",
    "# WARNING : the axis are modified, XYZ -> ZXY\n",
    "arr_dose = sitk.GetArrayFromImage(img_dose)\n",
    "print('Dose np image size = ', arr_dose.shape)\n",
    "print('Dose np image min and max: ',  np.amin(arr_dose), np.amax(arr_dose))"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dose itk image size:  (50, 50, 50)\n",
      "Dose itk image spacing:  (5.0, 5.0, 5.0)\n",
      "Dose itk image origin:  (2.5, 2.5, -12.5)\n",
      "Dose np image size =  (50, 50, 50)\n",
      "Dose np image min and max:  0.0 9.775102113754089e-08\n"
     ]
    }
   ],
   "execution_count": 5
  },
  {
   "cell_type": "code",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:27.967727Z",
     "start_time": "2024-09-17T11:59:27.961681Z"
    }
   },
   "source": [
    "# multiply the image because to avoid rounding issues\n",
    "filter = sitk.MultiplyImageFilter()\n",
    "img_dose = filter.Execute(img_dose, 1e9)\n",
    "arr_dose = sitk.GetArrayFromImage(img_dose)\n",
    "print('Dose np image min and max: ',  np.amin(arr_dose), np.amax(arr_dose))\n",
    "# now we rescale the intensity between 0 and 1 (normalization)\n",
    "filter = sitk.RescaleIntensityImageFilter()\n",
    "filter.SetOutputMaximum(1.0)\n",
    "filter.SetOutputMinimum(0.0)\n",
    "img_dose = filter.Execute(img_dose)\n",
    "arr_dose = sitk.GetArrayFromImage(img_dose)\n",
    "print('Dose np image min and max: ',  np.amin(arr_dose), np.amax(arr_dose))"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dose np image min and max:  0.0 97.75102113754089\n",
      "Dose np image min and max:  0.0 1.0\n"
     ]
    }
   ],
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00009-c0d6b0ff-c008-4dcb-8ad6-b9c0cd7f68c0",
    "execution_millis": 167,
    "execution_start": 1605009991135,
    "output_cleared": false,
    "source_hash": "6e7db63d",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.111116Z",
     "start_time": "2024-09-17T11:59:27.984727Z"
    }
   },
   "source": [
    "show_itk_3d_image(img_dose, rot90=(0,1,2), figsize=(10, 5))"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x500 with 4 Axes>"
      ],
      "image/png": "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2rRpyRNPPNH/tWOPPTaZNWvWgP3vvvvu5KCDDkpqa2uTww47LLn//vtHOeN8Ge3z//bbbycLFixI3n777TTSH1FyTV+55JkkQ+eqZoYm1/SVS55Jsv1cR7Nu8nLOskau6RutPKuSpMLvTQkAADlW8t+0CwAAjBwNPwAA5JiGHwAAckzDDwAAOabhJxWLFi2KSZMmRX19fTQ3N8eKFSu2u/8999wThxxySNTX18fkyZPjgQceGPD1JEni8ssvj3322SfGjh0bra2t8b//+7+jmuett94an/jEJ2KPPfaIPfbYI1pbW7fZ/8tf/nJUVVUNeJxwwgnDzrPQXO+8885t8njvb38eqXNaaK5/8zd/s02uVVVVceKJJ/bvMxLn9Ze//GWcdNJJMWHChKiqqor77rtvh8csW7YsjjrqqKirq4sDDzww7rzzzm32KfS1X+xxaibdXNXMjqmZ4pVL3aiZfNfMACN6DyAqwuLFi5Pa2trk9ttvT377298m55xzTrL77rsnnZ2dg+7/2GOPJTU1Nck111yTPP3008k3v/nNbe6vfPXVVycNDQ3Jfffdl/zP//xPcvLJJycf/OAHk7feemvU8jz99NOTRYsWJatXr06eeeaZ5Mtf/nLS0NCQvPjii/37zJo1KznhhBOSP/3pT/2P1157regci831jjvuSMaNGzcgj633t95qJM5pMbm++uqrA/Jcs2ZNUlNTk9xxxx39+4zEeX3ggQeS+fPnJz/60Y+SiEh+/OMfb3f/559/Pnnf+96XtLW1JU8//XRyww03JDU1NcnSpUuL/t6LPU7NpJ+rmtkxNVOccqkbNZPvmnkvDT/DNm3atOSCCy7o/3Nvb28yYcKEZOHChYPu/8UvfjE58cQTB2xrbm5OvvKVryRJkiR9fX1JU1NT8p3vfKf/66+//npSV1eX3HXXXaOW53u98847yW677ZZ873vf6982a9as5JRTTik6p6EUmusdd9yRNDQ0DBlvpM5pMbm+13e/+91kt912SzZu3Ni/baTO61Y78xfx17/+9eSwww4bsG3GjBnJ9OnT+/9c7PeuZk4pOqehqBk1826lqplicn2v0aobNZPvmnkvS3oYlp6enli5cmW0trb2b6uuro7W1tZYvnz5oMcsX758wP4REdOnT+/f/4UXXoiOjo4B+zQ0NERzc/OQMUciz/d68803489//nPsueeeA7YvW7Ys9t577zj44IPj/PPPj1dffbWoHIeb68aNG2P//fePiRMnximnnBK//e1v+782Eud0OLm+22233RannXZavP/97x+wPe3zWqgdvU6L/d7VjJpRM/msmWJzfa/RqBs1s0Vea2YwGn6GZcOGDdHb2xuNjY0Dtjc2NkZHR8egx3R0dGx3/63/LSTmSOT5XnPmzIkJEyYMKLwTTjgh/uM//iPa29vj29/+dvziF7+Iz3zmM9Hb21tUnsXmevDBB8ftt98eP/nJT+L73/9+9PX1xTHHHBMvvvhiRIzMOS0213dbsWJFrFmzJs4+++wB20fivBZqqNdpd3d3vPXWW0V/72pGzaiZfNZMsbm+12jUjZrJd80MZpdhZwsV4Oqrr47FixfHsmXLBnxI6bTTTuv//8mTJ8fhhx8eH/rQh2LZsmVx3HHHjVp+LS0t0dLS0v/nY445Jj784Q/Hv//7v8eVV145ankU6rbbbovJkyfHtGnTBmzPynmleGpmZKiZfMty3aiZ8mbCz7CMHz8+ampqorOzc8D2zs7OaGpqGvSYpqam7e6/9b+FxByJPLe69tpr4+qrr46HHnooDj/88O3ue8ABB8T48ePjueeeKyrP4ea61ZgxY+LII4/sz2Mkzulwc920aVMsXrw4zjrrrB0+TxrntVBDvU7HjRsXY8eOLfp7VzMDqZmdj6tmsl0zxea61WjWjZrZVp5qZjAafoaltrY2pk6dGu3t7f3b+vr6or29fcAk4N1aWloG7B8R8fDDD/fv/8EPfjCampoG7NPd3R2//vWvh4w5EnlGRFxzzTVx5ZVXxtKlS+Poo4/e4fO8+OKL8eqrr8Y+++xTVJ7DyfXdent746mnnurPYyTO6XBzveeee2Lz5s1xxhln7PB50jivhdrR67TY713NDKRm1ExeaqbYXCNGv27UzLbyVDODKugjvjCIxYsXJ3V1dcmdd96ZPP3008m5556b7L777v236zrzzDOTuXPn9u//2GOPJbvsskty7bXXJs8880yyYMGCQW+Xtvvuuyc/+clPkt/85jfJKaecksotBgvJ8+qrr05qa2uTe++9d8Btu954440kSZLkjTfeSC699NJk+fLlyQsvvJD87Gc/S4466qjkr//6r5O333676DyLyfWKK65IHnzwweT3v/99snLlyuS0005L6uvrk9/+9rcDvp+0z2kxuW718Y9/PJkxY8Y220fqvL7xxhvJ6tWrk9WrVycRkVx33XXJ6tWrkz/+8Y9JkiTJ3LlzkzPPPLN//623S/va176WPPPMM8miRYsGvV3a9r73oagZNaNm8lkzxeRaqrpRM/mumffS8JOKG264Idlvv/2S2traZNq0ackTTzzR/7Vjjz02mTVr1oD977777uSggw5Kamtrk8MOOyy5//77B3y9r68vueyyy5LGxsakrq4uOe6445Jnn312VPPcf//9k4jY5rFgwYIkSZLkzTffTI4//vjkAx/4QDJmzJhk//33T84555yCizCNXC+++OL+fRsbG5PPfvazyapVqwbEG6lzWmiuSZIka9euTSIieeihh7aJNVLn9ZFHHhn0em7NbdasWcmxxx67zTFHHHFEUltbmxxwwAED7uG8M9/79qgZNaNm8lkzheZayrpRM/mumXerSpIkKexnAgAAQLmwhh8AAHJMww8AADmm4QcAgBzT8AMAQI5p+AEAIMc0/AAAkGMafgAAyDENPwAA5JiGHwAAckzDDwAAOabhBwCAHNPwAwBAjv1/WqrkbkwCKtoAAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "interactive(children=(IntSlider(value=25, description='sx', max=49), IntSlider(value=25, description='sy', max…"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "a25b6732e70048d598a7fc2ea1c2b554"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "code",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.131625Z",
     "start_time": "2024-09-17T11:59:28.121056Z"
    }
   },
   "source": [
    "# resample the dose to the size of the ct image\n",
    "img_resampled_dose = resample_image_like(img_dose, img_ct, default_pixel_value=0)"
   ],
   "outputs": [],
   "execution_count": 8
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00011-1895ca45-3ea2-413b-af87-bc7b06021f5a",
    "execution_millis": 4,
    "execution_start": 1605009995371,
    "output_cleared": false,
    "source_hash": "d112ab9a",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.145915Z",
     "start_time": "2024-09-17T11:59:28.140506Z"
    }
   },
   "source": [
    "arr_resampled_dose = sitk.GetArrayViewFromImage(img_resampled_dose)\n",
    "print('Image size = ', arr_resampled_dose.shape)\n",
    "print('Image min and max: ',  np.amin(arr_resampled_dose), np.amax(arr_resampled_dose))"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Image size =  (111, 126, 126)\n",
      "Image min and max:  0.0 0.7290535641318978\n"
     ]
    }
   ],
   "execution_count": 9
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00012-f5fc639c-51ac-4afd-a3c1-fcfdb6fd69da",
    "execution_millis": 216,
    "execution_start": 1605009996523,
    "output_cleared": false,
    "source_hash": "2ddd38d8",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.333050Z",
     "start_time": "2024-09-17T11:59:28.165830Z"
    }
   },
   "source": [
    "show_itk_3d_image(img_ct, \n",
    "                  image2=img_resampled_dose, \n",
    "                  rot90=(0,1,2), \n",
    "                  figsize=(10, 5), \n",
    "                  opacity=0.5, \n",
    "                  threshold=0.001)"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x500 with 5 Axes>"
      ],
      "image/png": "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eETQEI/AsQ5L8jf3Cc+eepJ6WC47O1v79u1TUVGRHA6HUlJSWj3Q4ceVpzvuuEMRERG644479OWXX+rkk0/WZZddpnvuuSdYHwFdSEs8Lly4UJK0detW4hFBQzwCCJQIdwiVgt966y3df//9qq6u1p49e/Tyyy9r4sSJnvdvuOEGPf30017HZGVlqaKiwvP6wIEDmj59uv7nf/5HkZGRuvLKK/XQQw+pV69enjHvv/++8vLy9O677+rkk0/W9OnTNWvWLJ/n2dDQoNjYWFVWVuqEE04w/4ElNTY26qKLLlJ9fb3sdrtf5wonLX8GfG9oT0fGCPGIn0I8ojMJRowcveZpstv9+9WpocGp2NhPwi7GQ6qnvrGxUWPGjFFZWVm7Yy655BLt2bPHs/31r3/1ev+6667T9u3btW7dOr322mt66623dNNNN3neb2ho0Pjx4zVo0CBVV1fr/vvv17x58/TEE08Yni899QAAAEY45X8/Pe03nd6ll16qSy+99LhjoqOj21014MMPP1RFRYXeffddjRs3TpL0yCOP6Je//KUWL16sAQMG6Nlnn1Vzc7OWLVsmm82mESNGqKamRkuWLPFK/gEAAIDOIqQq9b5Yv3694uLiNHToUN1yyy366quvPO9VVVWpd+/enoRekjIzMxUZGal//vOfnjHnnnuubDabZ0xWVpZ27typr7/+us1rtve0Pir1AAAARjgDtIWfLpXUX3LJJfrzn/+syspK3Xffffr73/+uSy+9VE7nkT9ch8OhuLg4r2O6deumvn37yuFweMa09XS/lvfaUlJSotjYWM+WmJgY6I8GAAAAtCuk2m9+yqRJkzz/PGrUKI0ePVqnnXaa1q9fr4suusiy686dO1eFhYWe1w0NDUpMTGRJSwAAAEMOy/+asysQEwk5XSqpP9app56qfv366eOPP9ZFF12khIQE7d2712vM4cOHdeDAAU8ffkJCQptPP215ry3tPa2PpB4AAMAIknqzulT7zbG++OILffXVV+rfv78kKSMjQwcPHlR1dbVnzBtvvCGXy6X09HTPmLfeeks//PCDZ8y6des0dOhQ9enTp2M/AAAAAOCDkErqDx06pJqaGtXU1EiSdu3apZqaGtXW1urQoUO67bbbtHHjRn322WeqrKzU5ZdfriFDhigrK0uSNHz4cF1yySWaNm2aNm3apHfeeUf5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J554QhEREcrPz9e2bdvMnL7LoFIPAABggCtAWwiw2+2qra1ttX/37t068cQTDZ/PVFJ/+PBh7dixo9X+HTt2eNbUjImJabPvPpyQ1AMAABgQRu032dnZmjp1qlauXKndu3dr9+7dWrFihW688UZdc801hs9nqv1m8uTJmjp1qv7whz/ozDPPlCS9++67WrhwoaZMmSJJ+vvf/64RI0aYOT0AAADQpS1evFgRERGaMmWKDh8+LEnq3r27brnlFt17772Gz2cqqX/wwQcVHx+vRYsWqa6uTpIUHx+vgoICzZ49W5I0fvx4XXLJJWZO32Ww+g0AAIABYfTwKZvNpoceekglJSX65JNPJEmnnXaaevbsaep8ppL6qKgo3X777br99tvV0NAg6Uhf0I+dcsoppibUlZDUAwAAGBBGS1q26Nmzp0aNGuX3efx6+JTUOpkHAAAA0NoVV1yh5cuXy26364orrjju2JdeesnQuU0n9S+++KKef/551dbWqrm52eu9zZs3mz1tl0OlHQAAwEcu+d8+04kr9bGxsZ6FZMw8NfZ4TCX1Dz/8sG6//XbdcMMN+tvf/qbc3Fx98sknevfdd5WXlxfQCYYy2m8AAAAMcMrk2ozHnKOTeuqpp9r850Aw9bU99thjeuKJJ/TII4/IZrNp1qxZWrdunX73u9+pvr4+oBMEAAAAuprvvvtO3377ref1559/rtLSUq1du9bU+Uwl9bW1tTr77LMlST169NA333wj6chSl3/9619NTaQrYp16AAAAA8Lo4VOXX365/vznP0uSDh48qLS0ND3wwAO6/PLL9fjjjxs+n6mkPiEhQQcOHJB0ZJWbjRs3SpJ27dpFEvojJPUAAAAGhNHDpzZv3qxzzjlH0pF7VRMSEvT555/rz3/+sx5++GHD5zOV1F944YV69dVXJUm5ubkqKCjQxRdfrOzsbP361782c0oAAAAgbHz77bc68cQTJUlr167VFVdcocjISJ111ln6/PPPDZ/P1I2yTzzxhFyuI79t5OXl6aSTTtKGDRv0q1/9Sr/97W/NnLJL4kZZAAAAA8JonfohQ4bolVde0a9//WutWbNGBQUFkqS9e/eaWjLeVFIfGRmpyMijRf5JkyZp0qRJZk7VpZHUAwAAGNDFV7/5saKiIl177bUqKCjQRRddpIyMDElHqvZjx441fD7TX9v333+v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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "interactive(children=(IntSlider(value=63, description='sx', max=125), IntSlider(value=63, description='sy', ma…"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "ed2700371f6d4f5c9a113595c34200f1"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 10
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "cell_id": "00013-88abd044-d8f6-4c7d-89ed-5f2f90554e4a"
   },
   "source": [
    "# Part 2: 1D plot from 3D proton dose"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00014-ffb37061-1c2d-46ab-8948-5c6c9e36f210",
    "execution_millis": 5,
    "execution_start": 1605010005048,
    "output_cleared": false,
    "source_hash": "8ca55087",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.387985Z",
     "start_time": "2024-09-17T11:59:28.380823Z"
    }
   },
   "source": [
    "filename_edep = os.path.join(str(folder), './output/ex2_3d_patient_edep.mhd')\n",
    "img_edep = sitk.ReadImage(filename_edep)\n",
    "arr_edep = sitk.GetArrayFromImage(img_edep)"
   ],
   "outputs": [],
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "metadata": {
    "cell_id": "00015-f9dd3c8c-a10c-4b90-b6a8-f18f6c5f0ede",
    "execution_millis": 180,
    "execution_start": 1605010005853,
    "output_cleared": false,
    "source_hash": "9b152455",
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.492207Z",
     "start_time": "2024-09-17T11:59:28.405612Z"
    }
   },
   "source": [
    "# Declare a figure\n",
    "fig3, ax3 = plt.subplots()\n",
    "\n",
    "# mean the dose along a given dimension (depth)\n",
    "moy_dose=np.zeros(arr_dose.shape[0])\n",
    "moy_edep=np.zeros(arr_edep.shape[0])\n",
    "for i in range(arr_dose.shape[0]):\n",
    "    subarr_dose=arr_dose[i,:,:]\n",
    "    moy_dose[i]=np.mean(subarr_dose)\n",
    "    subarr_edep=arr_edep[i,:,:]\n",
    "    moy_edep[i]=np.mean(subarr_edep)\n",
    "\n",
    "# X values from 0 to n\n",
    "# n is the number of slices\n",
    "n = arr_dose.shape[0]\n",
    "x = np.linspace(0, n, n)\n",
    "\n",
    "c1 = ax3.plot(x, moy_dose, 'k.-', label='deposited dose', linewidth=1)\n",
    "ax32 = ax3.twinx()\n",
    "c2 = ax32.plot(x, moy_edep, 'b.-', label='deposited energy', linewidth=1)\n",
    "\n",
    "# Add legends to the plot\n",
    "ax3.legend(loc='upper left')\n",
    "ax32.legend(loc='upper right')"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x117404350>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ],
      "image/png": "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5+dj48aNyu+ZdXBcuXIFP//8M1JSUvicDhD+2DTIKioqUFpaivz8fFitVrz99tsYHh7G5s2bQ92aZl25cgU9PT3K7d7eXrS3tyM5ORkWiwXl5eV49dVXkZWVhczMTFRVVSE1NRVr164NXdMa5HA4cODAARw+fBjx8fHK8SgJCQmIjY1FQkICtmzZgoqKCiQnJ8NoNOK5556D3W7HAw88EOLutaOyshKrV6+GxWKBx+PBgQMH8O233+LIkSPMOIDi4+OV4zXHzZ49G3PmzFG2M+vAePHFF1FSUoKMjAxcunQJTqcTMTEx2LBhA5/TgRLq013/C/bu3SsWi0X0er1YrVZpbm4OdUuaduzYMQEw4au0tFRErl8upKqqSkwmkxgMBiksLJSurq7QNq1B/jIGIB9++KFS89dff8mzzz4rSUlJMmvWLFm3bp309fWFrmkNevrppyUjI0P0er3cc889UlhYKF9//bWyzoyD5+ZLhYgw60BZv369pKSkiF6vl7S0NFm/fr309PQo68z57kWJiIRobiQiIiKiKeIxb0REREQawuGNiIiISEM4vBERERFpCIc3IiIiIg3h8EZERESkIRzeiIiIiDSEwxsRERGRhnB4IyIiItIQDm9EREREGsLhjYiIiEhDOLwRERERaQiHNyIiIiIN+T+bkIfOMaXnvgAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 12
  },
  {
   "cell_type": "code",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.503525Z",
     "start_time": "2024-09-17T11:59:28.501726Z"
    }
   },
   "source": [],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "cell_id": "00016-8979e1f6-8d29-4df8-bcc1-3e884650bc7e"
   },
   "source": [
    "# Other examples of exercices\n",
    "\n",
    "- Plot a depth dose profile with interactive line coordinate\n",
    "- Display uncertainty map\n",
    "- Create another simulation with a different beam angle\n",
    "- Sum and display two different dose maps (two different irradiation fields for example)"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.514438Z",
     "start_time": "2024-09-17T11:59:28.512110Z"
    }
   },
   "source": [],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-09-17T11:59:28.534167Z",
     "start_time": "2024-09-17T11:59:28.532533Z"
    }
   },
   "source": [],
   "outputs": [],
   "execution_count": null
  }
 ],
 "metadata": {
  "deepnote_execution_queue": [],
  "deepnote_notebook_id": "941a92cc-9788-45bd-8e60-5aeb69a51003",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
